Þ ¥bonds€¬cell_resultsÞ Ù$fbd43578-2061-4bf0-a87c-e193a42998caŠ¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€‘lD°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$fbd43578-2061-4bf0-a87c-e193a42998ca¹depends_on_disabled_cellsÂ§runtimeÍì9µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$964d0060-9ed0-4824-a92c-1ae20c25c288Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€�û©°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$964d0060-9ed0-4824-a92c-1ae20c25c288¹depends_on_disabled_cellsÂ§runtimeÍåöµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$49786782-88c7-11ee-361d-9578fba566f6Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ‚‚þ‚°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$49786782-88c7-11ee-361d-9578fba566f6¹depends_on_disabled_cellsÂ§runtimeÎ éêµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$31c03827-9c7a-45ba-aec4-d45794f3e93fŠ¦queuedÂ¤logs�§runningÂ¦output†¤body‚£msgÙ®ArgumentError: Package AbstractPlutoDingetjes not found in current path:
- Run `import Pkg; Pkg.add("AbstractPlutoDingetjes")` to install the AbstractPlutoDingetjes package.
ªstacktrace’Œªcall_shortÙ"require(into::Module, mod::Symbol)§inlinedÂ£urlÙehttps://github.com/JuliaLang/julia/tree/742b9abb4dd4621b667ec5bb3434b8b3602f96fd/base/loading.jl#L959¤path¬./loading.jl®source_packageÀ¤callÙ"require(into::Module, mod::Symbol)ªlinfo_type³Core.MethodInstance¤lineÍÇ¤fileªloading.jl¤func§require­parent_moduleÀ¦from_cÂŒªcall_short¯top-level scope§inlinedÂ£urlÀ¤pathÙ�/home/runner/work/disorganised-mess/disorganised-mess/APD with_js_link bidirectional 1.jl#==#31c03827-9c7a-45ba-aec4-d45794f3e93f®source_packageÀ¤call¯top-level scopeªlinfo_type­Core.CodeInfo¤line¤fileÙKAPD with_js_link bidirectional 1.jl#==#31c03827-9c7a-45ba-aec4-d45794f3e93f¤func¯top-level scope­parent_moduleÀ¦from_cÂ¤mimeÙ'application/vnd.pluto.stacktrace+object¬rootassigneeÀ²last_run_timestampËAÚƒ
?:°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$31c03827-9c7a-45ba-aec4-d45794f3e93f¹depends_on_disabled_cellsÂ§runtimeÀµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÃÙ$24aad28b-8f4e-484f-8301-0c9205a40d66Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€‘+Ã°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$24aad28b-8f4e-484f-8301-0c9205a40d66¹depends_on_disabled_cellsÂ§runtimeÍë·µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$3b5f9c8b-200b-4f26-a48e-faf28a6bf80aŠ¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€‹Õ²°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$3b5f9c8b-200b-4f26-a48e-faf28a6bf80a¹depends_on_disabled_cellsÂ§runtimeÍ,Wµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$3ff49038-6945-4eb4-8ac7-81ac7531572bŠ¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€�ÊX°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$3ff49038-6945-4eb4-8ac7-81ac7531572b¹depends_on_disabled_cellsÂ§runtimeÍõîµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$c30f2819-5c76-4ac7-b962-e7d465f652b9Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€‘\6°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$c30f2819-5c76-4ac7-b962-e7d465f652b9¹depends_on_disabled_cellsÂ§runtimeÍëËµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$cbf6498f-abcf-4d1e-9f03-364aad4d0db5Š¦queuedÂ¤logs�§runningÂ¦output†¤body‚£msgÙ2syntax: extra token "THIS" after end of expressionªstacktrace’Œ®source_packageÀ¤file¯syntax error.jl¤func²throw_syntax_errorªcall_shortÙ#throw_syntax_error(syntax_err::Any)§inlinedÂ£urlÙbfile:///home/runner/.julia/packages/Pluto/6smog/src/runner/PlutoRunner/src/display/syntax error.jl¤pathÙ[/home/runner/.julia/packages/Pluto/6smog/src/runner/PlutoRunner/src/display/syntax error.jl¤callÙ#throw_syntax_error(syntax_err::Any)ªlinfo_type³Core.MethodInstance¤lineÌ²­parent_moduleÀ¦from_cÂŒ®source_packageÀ¤fileÙKAPD with_js_link bidirectional 1.jl#==#cbf6498f-abcf-4d1e-9f03-364aad4d0db5¤func¼##function_wrapped_cell#5697ªcall_short¯top-level scope§inlinedÃ£urlÀ¤pathÙ�/home/runner/work/disorganised-mess/disorganised-mess/APD with_js_link bidirectional 1.jl#==#cbf6498f-abcf-4d1e-9f03-364aad4d0db5¤call¯top-level scopeªlinfo_type§Nothing¤line­parent_moduleÀ¦from_cÂ¤mimeÙ'application/vnd.pluto.stacktrace+object¬rootassigneeÀ²last_run_timestampËAÚ€�·°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$cbf6498f-abcf-4d1e-9f03-364aad4d0db5¹depends_on_disabled_cellsÂ§runtimeÀµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÃÙ$e041300e-a263-4eca-976a-0a00c25ae318Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€‘Ø°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$e041300e-a263-4eca-976a-0a00c25ae318¹depends_on_disabled_cellsÂ§runtimeÍýÂµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$7db59ac0-2c7f-4be7-bdb7-19af83fe82ebŠ¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚƒº^°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$7db59ac0-2c7f-4be7-bdb7-19af83fe82eb¹depends_on_disabled_cellsÂ§runtimeÎ HãXµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$9542b8ab-c442-45c9-8f9e-6e710ed71bbbŠ¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€‘Á°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$9542b8ab-c442-45c9-8f9e-6e710ed71bbb¹depends_on_disabled_cellsÂ§runtimeÍé¤µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$80d9b34a-a118-437d-954b-bec3be94273fŠ¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€‘|�°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$80d9b34a-a118-437d-954b-bec3be94273f¹depends_on_disabled_cellsÂ§runtimeÍêYµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8Š¦queuedÂ¤logs�§runningÂ¦output†¤body¡1¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚƒ=�°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8¹depends_on_disabled_cellsÂ§runtimeÍ~rµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$24d5cf8a-439c-4b99-a8d6-2f03aefb9658Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€Œ3n°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$24d5cf8a-439c-4b99-a8d6-2f03aefb9658¹depends_on_disabled_cellsÂ§runtimeÍðºµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$6cbae03c-087f-46fb-8577-8d2bcf7fbed6Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ0link_from_julia (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚƒ%n	°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$6cbae03c-087f-46fb-8577-8d2bcf7fbed6¹depends_on_disabled_cellsÂ§runtimeÎ °ïµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$274f0781-26d5-49f6-8306-d81129b8afafŠ¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€�Úà°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$274f0781-26d5-49f6-8306-d81129b8afaf¹depends_on_disabled_cellsÂ§runtimeÍëòµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$4b9adb89-a54b-4cba-9091-79c81168560dŠ¦queuedÂ¤logs‘ˆ¤lineÿ£msg’ÙH[32m[1m  Activating[22m[39m project at `~/.julia/environments/v1.7`
ªtext/plain§cell_idÙ$4b9adb89-a54b-4cba-9091-79c81168560d¦kwargs�¢id´PlutoRunner_d1acb81e¤fileÙP/home/runner/.julia/packages/Pluto/6smog/src/runner/PlutoRunner/src/io/stdout.jl¥group¦stdout¥level®LogLevel(-555)§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ‚¾ëF°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$4b9adb89-a54b-4cba-9091-79c81168560d¹depends_on_disabled_cellsÂ§runtimeÎ!¾lµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$78a32b95-d502-4e96-b074-a1d07e5a51a5Š¦queuedÂ¤logs�§runningÂ¦output†¤body‚£msgÙœArgumentError: Package HypertextLiteral not found in current path:
- Run `import Pkg; Pkg.add("HypertextLiteral")` to install the HypertextLiteral package.
ªstacktrace’Œªcall_shortÙ"require(into::Module, mod::Symbol)§inlinedÂ£urlÙehttps://github.com/JuliaLang/julia/tree/742b9abb4dd4621b667ec5bb3434b8b3602f96fd/base/loading.jl#L959¤path¬./loading.jl®source_packageÀ¤callÙ"require(into::Module, mod::Symbol)ªlinfo_type³Core.MethodInstance¤lineÍÇ¤fileªloading.jl¤func§require­parent_moduleÀ¦from_cÂŒªcall_short¯top-level scope§inlinedÂ£urlÀ¤pathÙ�/home/runner/work/disorganised-mess/disorganised-mess/APD with_js_link bidirectional 1.jl#==#78a32b95-d502-4e96-b074-a1d07e5a51a5®source_packageÀ¤call¯top-level scopeªlinfo_type­Core.CodeInfo¤line¤fileÙKAPD with_js_link bidirectional 1.jl#==#78a32b95-d502-4e96-b074-a1d07e5a51a5¤func¯top-level scope­parent_moduleÀ¦from_cÂ¤mimeÙ'application/vnd.pluto.stacktrace+object¬rootassigneeÀ²last_run_timestampËAÚƒü½°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$78a32b95-d502-4e96-b074-a1d07e5a51a5¹depends_on_disabled_cellsÂ§runtimeÀµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÃÙ$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11Š¦queuedÂ¤logs�§runningÂ¦output†¤body…¦prefixµBase.RefValue{String}¨elements‘’¡x’¢""ªtext/plain¤type¦struct¬prefix_short¨RefValue¨objectid°2fe975ecdd853f79¤mimeÙ!application/vnd.pluto.tree+object¬rootassignee¥state²last_run_timestampËAÚƒCÿÉ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11¹depends_on_disabled_cellsÂ§runtimeÍ=Ìµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$9edfc363-c5a9-43b1-94fc-2cd63171ba34Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚƒJ+N°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$9edfc363-c5a9-43b1-94fc-2cd63171ba34¹depends_on_disabled_cellsÂ§runtimeÎ YÇµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$9985a237-33bd-441f-afda-26c23d351dd5Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€�ë:°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$9985a237-33bd-441f-afda-26c23d351dd5¹depends_on_disabled_cellsÂ§runtimeÍëËµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$af870486-fd6c-40cb-861a-1cf50aaed29bŠ¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€‘L°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$af870486-fd6c-40cb-861a-1cf50aaed29b¹depends_on_disabled_cellsÂ§runtimeÍè¾µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$3813b59a-0ca1-41c0-8d5d-559a5b7b1290Š¦queuedÂ¤logs�§runningÂ¦output†¤body‚£msgÙ®ArgumentError: Package AbstractPlutoDingetjes not found in current path:
- Run `import Pkg; Pkg.add("AbstractPlutoDingetjes")` to install the AbstractPlutoDingetjes package.
ªstacktrace’Œªcall_shortÙ"require(into::Module, mod::Symbol)§inlinedÂ£urlÙehttps://github.com/JuliaLang/julia/tree/742b9abb4dd4621b667ec5bb3434b8b3602f96fd/base/loading.jl#L959¤path¬./loading.jl®source_packageÀ¤callÙ"require(into::Module, mod::Symbol)ªlinfo_type³Core.MethodInstance¤lineÍÇ¤fileªloading.jl¤func§require­parent_moduleÀ¦from_cÂŒªcall_short¯top-level scope§inlinedÂ£urlÀ¤pathÙ�/home/runner/work/disorganised-mess/disorganised-mess/APD with_js_link bidirectional 1.jl#==#3813b59a-0ca1-41c0-8d5d-559a5b7b1290®source_packageÀ¤call¯top-level scopeªlinfo_type­Core.CodeInfo¤line¤fileÙKAPD with_js_link bidirectional 1.jl#==#3813b59a-0ca1-41c0-8d5d-559a5b7b1290¤func¯top-level scope­parent_moduleÀ¦from_cÂ¤mimeÙ'application/vnd.pluto.stacktrace+object¬rootassigneeÀ²last_run_timestampËAÚƒ¸„°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$3813b59a-0ca1-41c0-8d5d-559a5b7b1290¹depends_on_disabled_cellsÂ§runtimeÀµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÃÙ$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€‘< °persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7¹depends_on_disabled_cellsÂ§runtimeÍç¥µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$7ece8b4f-d929-4629-b395-56c98bf14de9Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ€Œ"F°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$7ece8b4f-d929-4629-b395-56c98bf14de9¹depends_on_disabled_cellsÂ§runtimeÍ-ýµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂ±cell_dependenciesÞ Ù$fbd43578-2061-4bf0-a87c-e193a42998ca„´precedence_heuristic	§cell_idÙ$fbd43578-2061-4bf0-a87c-e193a42998ca´downstream_cells_map€²upstream_cells_map€Ù$964d0060-9ed0-4824-a92c-1ae20c25c288„´precedence_heuristic	§cell_idÙ$964d0060-9ed0-4824-a92c-1ae20c25c288´downstream_cells_map€²upstream_cells_map€Ù$49786782-88c7-11ee-361d-9578fba566f6„´precedence_heuristic§cell_idÙ$49786782-88c7-11ee-361d-9578fba566f6´downstream_cells_map�£Pkg‘Ù$4b9adb89-a54b-4cba-9091-79c81168560d²upstream_cells_map€Ù$31c03827-9c7a-45ba-aec4-d45794f3e93f„´precedence_heuristic	§cell_idÙ$31c03827-9c7a-45ba-aec4-d45794f3e93f´downstream_cells_map�¬with_js_link�²upstream_cells_map€Ù$24aad28b-8f4e-484f-8301-0c9205a40d66„´precedence_heuristic	§cell_idÙ$24aad28b-8f4e-484f-8301-0c9205a40d66´downstream_cells_map€²upstream_cells_map€Ù$3b5f9c8b-200b-4f26-a48e-faf28a6bf80a„´precedence_heuristic	§cell_idÙ$3b5f9c8b-200b-4f26-a48e-faf28a6bf80a´downstream_cells_map€²upstream_cells_map€Ù$3ff49038-6945-4eb4-8ac7-81ac7531572b„´precedence_heuristic	§cell_idÙ$3ff49038-6945-4eb4-8ac7-81ac7531572b´downstream_cells_map€²upstream_cells_map€Ù$c30f2819-5c76-4ac7-b962-e7d465f652b9„´precedence_heuristic	§cell_idÙ$c30f2819-5c76-4ac7-b962-e7d465f652b9´downstream_cells_map€²upstream_cells_map€Ù$cbf6498f-abcf-4d1e-9f03-364aad4d0db5„´precedence_heuristic	§cell_idÙ$cbf6498f-abcf-4d1e-9f03-364aad4d0db5´downstream_cells_map€²upstream_cells_map‚«PlutoRunner�¾PlutoRunner.throw_syntax_error�Ù$e041300e-a263-4eca-976a-0a00c25ae318„´precedence_heuristic	§cell_idÙ$e041300e-a263-4eca-976a-0a00c25ae318´downstream_cells_map€²upstream_cells_map€Ù$7db59ac0-2c7f-4be7-bdb7-19af83fe82eb„´precedence_heuristic	§cell_idÙ$7db59ac0-2c7f-4be7-bdb7-19af83fe82eb´downstream_cells_map„©Base.show�©Base.put!�±JSGeneratorFinish‘Ù$6cbae03c-087f-46fb-8577-8d2bcf7fbed6«JSGenerator’Ù$6cbae03c-087f-46fb-8577-8d2bcf7fbed6Ù$7db59ac0-2c7f-4be7-bdb7-19af83fe82eb²upstream_cells_map…¤Base�¢IO�¥write�«JSGenerator‘Ù$7db59ac0-2c7f-4be7-bdb7-19af83fe82eb©@MIME_str�Ù$9542b8ab-c442-45c9-8f9e-6e710ed71bbb„´precedence_heuristic	§cell_idÙ$9542b8ab-c442-45c9-8f9e-6e710ed71bbb´downstream_cells_map€²upstream_cells_map€Ù$80d9b34a-a118-437d-954b-bec3be94273f„´precedence_heuristic	§cell_idÙ$80d9b34a-a118-437d-954b-bec3be94273f´downstream_cells_map€²upstream_cells_map€Ù$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8„´precedence_heuristic	§cell_idÙ$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8´downstream_cells_map€²upstream_cells_mapƒ¤put!�§Channel�¥take!�Ù$24d5cf8a-439c-4b99-a8d6-2f03aefb9658„´precedence_heuristic	§cell_idÙ$24d5cf8a-439c-4b99-a8d6-2f03aefb9658´downstream_cells_map€²upstream_cells_map€Ù$6cbae03c-087f-46fb-8577-8d2bcf7fbed6„´precedence_heuristic	§cell_idÙ$6cbae03c-087f-46fb-8577-8d2bcf7fbed6´downstream_cells_map�¯link_from_julia�²upstream_cells_mapŠÙ+AbstractPlutoDingetjes.Display.with_js_link�¤put!�£===�¶AbstractPlutoDingetjes‘Ù$3813b59a-0ca1-41c0-8d5d-559a5b7b1290§Channel�±JSGeneratorFinish‘Ù$7db59ac0-2c7f-4be7-bdb7-19af83fe82eb¤Bool�«JSGenerator‘Ù$7db59ac0-2c7f-4be7-bdb7-19af83fe82eb£Ref�¥take!�Ù$274f0781-26d5-49f6-8306-d81129b8afaf„´precedence_heuristic	§cell_idÙ$274f0781-26d5-49f6-8306-d81129b8afaf´downstream_cells_map€²upstream_cells_map€Ù$4b9adb89-a54b-4cba-9091-79c81168560d„´precedence_heuristic§cell_idÙ$4b9adb89-a54b-4cba-9091-79c81168560d´downstream_cells_map€²upstream_cells_map‚£Pkg‘Ù$49786782-88c7-11ee-361d-9578fba566f6¬Pkg.activate�Ù$78a32b95-d502-4e96-b074-a1d07e5a51a5„´precedence_heuristic§cell_idÙ$78a32b95-d502-4e96-b074-a1d07e5a51a5´downstream_cells_map�°HypertextLiteral�²upstream_cells_map€Ù$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11„´precedence_heuristic	§cell_idÙ$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11´downstream_cells_map�¥state‘Ù$9edfc363-c5a9-43b1-94fc-2cd63171ba34²upstream_cells_map�£Ref�Ù$9edfc363-c5a9-43b1-94fc-2cd63171ba34„´precedence_heuristic	§cell_idÙ$9edfc363-c5a9-43b1-94fc-2cd63171ba34´downstream_cells_map€²upstream_cells_mapƒ¤Text�¢|>�¥state‘Ù$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11Ù$9985a237-33bd-441f-afda-26c23d351dd5„´precedence_heuristic	§cell_idÙ$9985a237-33bd-441f-afda-26c23d351dd5´downstream_cells_map€²upstream_cells_map€Ù$af870486-fd6c-40cb-861a-1cf50aaed29b„´precedence_heuristic	§cell_idÙ$af870486-fd6c-40cb-861a-1cf50aaed29b´downstream_cells_map€²upstream_cells_map€Ù$3813b59a-0ca1-41c0-8d5d-559a5b7b1290„´precedence_heuristic§cell_idÙ$3813b59a-0ca1-41c0-8d5d-559a5b7b1290´downstream_cells_map�¶AbstractPlutoDingetjes‘Ù$6cbae03c-087f-46fb-8577-8d2bcf7fbed6²upstream_cells_map€Ù$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7„´precedence_heuristic	§cell_idÙ$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7´downstream_cells_map€²upstream_cells_map€Ù$7ece8b4f-d929-4629-b395-56c98bf14de9„´precedence_heuristic	§cell_idÙ$7ece8b4f-d929-4629-b395-56c98bf14de9´downstream_cells_map€²upstream_cells_map€´cell_execution_orderÜ Ù$49786782-88c7-11ee-361d-9578fba566f6Ù$4b9adb89-a54b-4cba-9091-79c81168560dÙ$3813b59a-0ca1-41c0-8d5d-559a5b7b1290Ù$78a32b95-d502-4e96-b074-a1d07e5a51a5Ù$31c03827-9c7a-45ba-aec4-d45794f3e93fÙ$3b5f9c8b-200b-4f26-a48e-faf28a6bf80aÙ$7db59ac0-2c7f-4be7-bdb7-19af83fe82ebÙ$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8Ù$6cbae03c-087f-46fb-8577-8d2bcf7fbed6Ù$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11Ù$7ece8b4f-d929-4629-b395-56c98bf14de9Ù$9edfc363-c5a9-43b1-94fc-2cd63171ba34Ù$24d5cf8a-439c-4b99-a8d6-2f03aefb9658Ù$cbf6498f-abcf-4d1e-9f03-364aad4d0db5Ù$3ff49038-6945-4eb4-8ac7-81ac7531572bÙ$274f0781-26d5-49f6-8306-d81129b8afafÙ$9985a237-33bd-441f-afda-26c23d351dd5Ù$964d0060-9ed0-4824-a92c-1ae20c25c288Ù$e041300e-a263-4eca-976a-0a00c25ae318Ù$9542b8ab-c442-45c9-8f9e-6e710ed71bbbÙ$24aad28b-8f4e-484f-8301-0c9205a40d66Ù$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7Ù$af870486-fd6c-40cb-861a-1cf50aaed29bÙ$c30f2819-5c76-4ac7-b962-e7d465f652b9Ù$fbd43578-2061-4bf0-a87c-e193a42998caÙ$80d9b34a-a118-437d-954b-bec3be94273f´last_hot_reload_timeË        ©shortpathÙ#APD with_js_link bidirectional 1.jl®process_status¥ready¤pathÙY/home/runner/work/disorganised-mess/disorganised-mess/APD with_js_link bidirectional 1.jl­pluto_version¨v0.19.47®last_save_timeËAÚ€Š¦øªcell_orderÜ Ù$49786782-88c7-11ee-361d-9578fba566f6Ù$4b9adb89-a54b-4cba-9091-79c81168560dÙ$3813b59a-0ca1-41c0-8d5d-559a5b7b1290Ù$31c03827-9c7a-45ba-aec4-d45794f3e93fÙ$78a32b95-d502-4e96-b074-a1d07e5a51a5Ù$3b5f9c8b-200b-4f26-a48e-faf28a6bf80aÙ$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8Ù$6cbae03c-087f-46fb-8577-8d2bcf7fbed6Ù$7db59ac0-2c7f-4be7-bdb7-19af83fe82ebÙ$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11Ù$7ece8b4f-d929-4629-b395-56c98bf14de9Ù$9edfc363-c5a9-43b1-94fc-2cd63171ba34Ù$24d5cf8a-439c-4b99-a8d6-2f03aefb9658Ù$cbf6498f-abcf-4d1e-9f03-364aad4d0db5Ù$3ff49038-6945-4eb4-8ac7-81ac7531572bÙ$274f0781-26d5-49f6-8306-d81129b8afafÙ$9985a237-33bd-441f-afda-26c23d351dd5Ù$964d0060-9ed0-4824-a92c-1ae20c25c288Ù$e041300e-a263-4eca-976a-0a00c25ae318Ù$9542b8ab-c442-45c9-8f9e-6e710ed71bbbÙ$24aad28b-8f4e-484f-8301-0c9205a40d66Ù$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7Ù$af870486-fd6c-40cb-861a-1cf50aaed29bÙ$c30f2819-5c76-4ac7-b962-e7d465f652b9Ù$fbd43578-2061-4bf0-a87c-e193a42998caÙ$80d9b34a-a118-437d-954b-bec3be94273f±published_objects€¥nbpkgŠ¯install_time_nsÀ¬instantiatedÃ²installed_versions€°terminal_outputs€§enabledÂ·restart_recommended_msgÀ´restart_required_msgÀ­busy_packages�¶waiting_for_permissionÂÙ,waiting_for_permission_but_probably_disabledÂ«cell_inputsÞ Ù$fbd43578-2061-4bf0-a87c-e193a42998ca„§cell_idÙ$fbd43578-2061-4bf0-a87c-e193a42998ca¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$964d0060-9ed0-4824-a92c-1ae20c25c288„§cell_idÙ$964d0060-9ed0-4824-a92c-1ae20c25c288¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$49786782-88c7-11ee-361d-9578fba566f6„§cell_idÙ$49786782-88c7-11ee-361d-9578fba566f6¤code©using Pkg¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$31c03827-9c7a-45ba-aec4-d45794f3e93f„§cell_idÙ$31c03827-9c7a-45ba-aec4-d45794f3e93f¤codeÙ0import AbstractPlutoDingetjes.Bonds.with_js_link¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$24aad28b-8f4e-484f-8301-0c9205a40d66„§cell_idÙ$24aad28b-8f4e-484f-8301-0c9205a40d66¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$3b5f9c8b-200b-4f26-a48e-faf28a6bf80a„§cell_idÙ$3b5f9c8b-200b-4f26-a48e-faf28a6bf80a¤codeÚ¨# let
# 	messages_to_js = Channel()
# 	send_to_js(msg) = put!(messages_to_js, msg)


# 	function get_next_message(_ignore)
# 		take!(messages_to_js)
# 	end


# 	@async begin
# 		sleep(5)
# 		for i in 1:10
# 			send_to_js(i)
# 			sleep(.3)
# 		end
# 	end
	


# 	@htl("""
# 	<script>
# 	const get_next_msg_from_julia = $(AbstractPlutoDingetjes.Display.with_js_link(get_next_message))

# 		let running = true
# 		let messages = async function* () {
# 			while(running) {
# 				yield await get_next_msg_from_julia()
# 			}
# 		}
# 		invalidation.then(() => {
# 			running = false
# 		})

# 		for await (const msg of messages()) {
# 			console.log(msg)
# 		}

# </script>
# """)

# end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$3ff49038-6945-4eb4-8ac7-81ac7531572b„§cell_idÙ$3ff49038-6945-4eb4-8ac7-81ac7531572b¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$c30f2819-5c76-4ac7-b962-e7d465f652b9„§cell_idÙ$c30f2819-5c76-4ac7-b962-e7d465f652b9¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$cbf6498f-abcf-4d1e-9f03-364aad4d0db5„§cell_idÙ$cbf6498f-abcf-4d1e-9f03-364aad4d0db5¤codeÙsBUT THIS ONLY WORKS FOR ONE CLIENT

WHCIH it should

but right now the messages go "randomly" to one of the clients¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$e041300e-a263-4eca-976a-0a00c25ae318„§cell_idÙ$e041300e-a263-4eca-976a-0a00c25ae318¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$7db59ac0-2c7f-4be7-bdb7-19af83fe82eb„§cell_idÙ$7db59ac0-2c7f-4be7-bdb7-19af83fe82eb¤codeÚ`begin
	struct JSGeneratorFinish end
	
	struct JSGenerator
		APDlink
		channel
	end

	Base.put!(jsg::JSGenerator, msg) = put!(jsg.channel, msg)
	function Base.show(io::IO, m::MIME"text/javascript", wjl::JSGenerator)
		write(io, """(() => {
		let messages = async function* () {
			while(true) {
				let next = await """)
		show(io, m, wjl.APDlink)
		write(io, """();
				if(next === `__jsgen_stop`) return;
				yield next;
			}
		};
		let gen = messages();
		
		invalidation.then(async () => {
			console.log("stopping! 1")
			gen.return()
			console.log("stopping! 2")
		});
		return gen;
		})()""")
	end
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$9542b8ab-c442-45c9-8f9e-6e710ed71bbb„§cell_idÙ$9542b8ab-c442-45c9-8f9e-6e710ed71bbb¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$80d9b34a-a118-437d-954b-bec3be94273f„§cell_idÙ$80d9b34a-a118-437d-954b-bec3be94273f¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8„§cell_idÙ$4d1057f7-c033-4bcb-9b81-a93d96c1a1f8¤codeÙ-let
	c = Channel(1)
	put!(c, 1)
	take!(c)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$24d5cf8a-439c-4b99-a8d6-2f03aefb9658„§cell_idÙ$24d5cf8a-439c-4b99-a8d6-2f03aefb9658¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$6cbae03c-087f-46fb-8577-8d2bcf7fbed6„§cell_idÙ$6cbae03c-087f-46fb-8577-8d2bcf7fbed6¤codeÚMfunction link_from_julia()
	messages_to_js = Channel()
	running_ref = Ref{Bool}(true)

	function get_next_message(_ignore)
		if running_ref[]
			# state[] *= "\nwaiting"
			# @debug "waiting"
			next = take!(messages_to_js)
			# @info "done!" next
			# state[] *= "\ndone $(next)"
			
			if next === JSGeneratorFinish()
				"__jsgen_stop"
			else
				next
			end
		else
			"__jsgen_stop"
		end
	end

	function stop_generator()
		# @debug "stopping"
		# state[] *= "\nstopping"
		if running_ref[]
			running_ref[] = false
			# TODO if available
			# TODO what if there are multiple clients connected?
			put!(messages_to_js, JSGeneratorFinish())
			# state[] *= "\nstopped"
		end
		
	end

	js_generator = JSGenerator(
		AbstractPlutoDingetjes.Display.with_js_link(get_next_message, stop_generator),
		messages_to_js,
	)
	
	return js_generator
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$274f0781-26d5-49f6-8306-d81129b8afaf„§cell_idÙ$274f0781-26d5-49f6-8306-d81129b8afaf¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$4b9adb89-a54b-4cba-9091-79c81168560d„§cell_idÙ$4b9adb89-a54b-4cba-9091-79c81168560d¤code®Pkg.activate()¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$78a32b95-d502-4e96-b074-a1d07e5a51a5„§cell_idÙ$78a32b95-d502-4e96-b074-a1d07e5a51a5¤code¶using HypertextLiteral¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11„§cell_idÙ$9b58eaa7-0cda-4e29-ab11-ed03f40a1c11¤code¯state = Ref("")¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$9edfc363-c5a9-43b1-94fc-2cd63171ba34„§cell_idÙ$9edfc363-c5a9-43b1-94fc-2cd63171ba34¤code¯state[] |> Text¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$9985a237-33bd-441f-afda-26c23d351dd5„§cell_idÙ$9985a237-33bd-441f-afda-26c23d351dd5¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$af870486-fd6c-40cb-861a-1cf50aaed29b„§cell_idÙ$af870486-fd6c-40cb-861a-1cf50aaed29b¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$3813b59a-0ca1-41c0-8d5d-559a5b7b1290„§cell_idÙ$3813b59a-0ca1-41c0-8d5d-559a5b7b1290¤code¼using AbstractPlutoDingetjes¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7„§cell_idÙ$e9f1432c-2256-42ef-8a80-08d8b0f8b6a7¤code ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$7ece8b4f-d929-4629-b395-56c98bf14de9„§cell_idÙ$7ece8b4f-d929-4629-b395-56c98bf14de9¤codeÙø# let
# 	link = link_from_julia()

# 	@async begin
# 		sleep(5)
# 		for i in 1:10
# 			put!(link, i)
# 			sleep(.3)
# 		end
# 	end

# 	@htl("""
# 	<script>
# 	for await (const msg of $(link)) {
# 		console.log(msg)
# 	}
	
# 	</script>
# 	""")
# end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂ«notebook_idÙ$75066d96-4aad-11f0-31cf-b50fdf4fd70e«in_temp_dirÂ¨metadata€